Exception就是例外狀況
Azure Application Insights本身就會搜集ㄧ些App Service發生的例外回傳
並且記錄在exception這張表裡面
如下圖我們可以看到Azure Application Insights在這幾天記錄的一些資料
但...Azure Application Insights他能抓取的僅僅只有他從App Service裡面知道的
可是如果是一些被我們handle過的exception,他就無法抓取了
謎之音:既然都使用Azure Application Insights,難道我們還得去搞個Error Log嗎??
當然不用!我們也可以直接利用Azure Application Insights SDK提供的方法達成
首先我們將會用到TrackException這個方法
我們可以使用下面的程式碼片段來實作
try
{
throw new Exception("test")
}
catch (Exception ex)
{
telemetryClient.TrackException(ex);
}
沒錯就是這麼簡單,接著...再讓我們發行到Azure上就搞定了
接著讓我們把時間縮短到30分鐘內來執行查詢看看(這部分有時候也要等一下唷)
exceptions
| limit 50
在上圖我們可以清楚得看到查詢的結果,裡面的outermessage裡面就是上面所寫的test
有告訴我們在哪發生的,發生了什麼事情,甚至有Exception整個物件
但...當然不只是只能這樣!
筆者後來還準備了一些不一樣類型的Exception材料,除了原本的System.Exception外還多了其他的
例如像是:FormatException、InvalidOperationException這兩個
為什麼要這樣呢?因為我們利用下方的Kusto語法還可以做出將Exception分類的查詢
exceptions
| summarize sum(itemCount) by type
上圖即是我們利用Kusto語法做出的查詢結果
從查詢結果我們可以得知有哪些錯誤類型,並且這些錯誤類型到底都發生了幾次
所以我當初說過Kusto語法很重要的!多了解點會有好處的